package com.swa99ylum.pjv.validator;

import java.util.List;
import java.util.Map;

import com.swa99ylum.pjv.exception.JSONValidateException;

/** <h1>字符串 长度 验证器</h1>
<br> 1、验证 value 不能是 List、Map，而 必须是 单值
<br> 2、将 value 转成 字符串类型，并 验证其 长度
<br>    
 */
public class LengthValidator extends Validator {
	
	
	private int length;
	

	public LengthValidator(int length) {
		super();
		this.length = length;
	}
	
	@Override
	public void doValidate(Object rootObject, String[] nodePath, String nodeName, Map<String, Object> parentValue, Object value) throws JSONValidateException {

		if(value instanceof List) 
			throw new JSONValidateException(nodePath, value, "应当是 单值，不能是 Array");
		
		if(value instanceof Map) 
			throw new JSONValidateException(nodePath, value, "应当是 单值，不能是 Object");
		
		
		String str = String.valueOf(value);
		if(str.length() > length) 
			throw new JSONValidateException(nodePath, value, "值的长度 过长，超过了："+ length);
		
		
	}

}
